package controller;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JButton;
import model.XMLLoadModel;

/**
 * Controller fuer das Verhalten beim Druecken eines "Aufgaben laden"-Buttons.<br>
 * Kuemmert sich um das deaktivieren des Buttons sowie die Uebergabe der XML-URL an das XML-parsende Model.
 */
public class XMLLoadController implements ActionListener {
    /**
     * Das Model zum parsen der XML Datei.
     */
    private XMLLoadModel model;
    
    /**
     * Setzt das Uebergebene Model als Attribut.
     * 
     * @param xmlLoadModel das zu setzende Model
     */
    public XMLLoadController(XMLLoadModel xmlLoadModel) {
        this.model = xmlLoadModel;
    }

    /**
     * Reagiert auf ein Button-Event und kuemmert sich um die Datenuebergabe der URL zum Model.<br>
     * War das Laden der Aufgaben erfolgreich, so wird der entsprechende Button deaktiviert. 
     * 
     * @param e 
     */
    public void actionPerformed(ActionEvent e) {
       JButton button = (JButton) e.getSource();
       button.setEnabled(false);
       
       try {   
            this.model.parse("http://harald-brandenburg.de/xml-jaxp/xml-jaxp.xml");
        } catch (Exception ex) {
            Logger.getLogger(XMLLoadController.class.getName()).log(Level.SEVERE, null, ex);
            button.setEnabled(true);
        }
    }

}
